/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package umbook.controller;

import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import umbook.beans.LoginJSFBean;
import umbook.dao.GrupoAmigoDAO;
import umbook.entity.GruposAmigos;
import umbook.entity.Usuarios;

/**
 *
 * @author marce
 */

@ManagedBean
@SessionScoped
public class AmigosController {
    
     
   private Usuarios usuarios; //user dueño
   private GrupoAmigoDAO daoGA;
   private LoginJSFBean sesionUsr;
   
   private int startId;
   private int endId;
   DataModel gruposNombres;
    
    private int recordCount = 1000;
    private int pageSize = 10;
    private GruposAmigos current;
    private GruposAmigos grupoActual;
    private int selectedItemIndex;
   
    public AmigosController() {
        sesionUsr = new LoginJSFBean();
        this.usuarios = sesionUsr.getUsuarioActual();
        daoGA = new GrupoAmigoDAO();
        this.startId = 1;
        this.endId = 10;
    }

    
   
   
    public Usuarios getUsuarios() {
        return usuarios;
    }

       

    public GruposAmigos getSelected() {
        if (current == null) {
            current = new GruposAmigos();
            selectedItemIndex = -1;
        }
        return current;
    }
   
   
   public void crearGrupoAmigo(GruposAmigos grupo){
       
       daoGA.crearGrupoAmigo(grupo);
      usuarios.setGruposAmigoses(grupo);
   }
   
   public DataModel getGruposNombres() {
        if (gruposNombres == null) {
            gruposNombres = new ListDataModel(daoGA.getGrupoAmigos(usuarios.getIdUser()));
        }
        return gruposNombres;
    }

    void recreateModel() {
        gruposNombres = null;

    }
   
       //PARA MOSTRAR Y PAGINAR
    public boolean isHasNextPage() {
        if (endId + pageSize <= recordCount) {
            return true;
        }
        return false;
    }

    public boolean isHasPreviousPage() {
        if (startId - pageSize > 0) {
            return true;
        }
        return false;
    }

    public String next() {
        startId = endId + 1;
        endId = endId + pageSize;
        recreateModel();
        return "index";
    }

    public String previous() {
        startId = startId - pageSize;
        endId = endId - pageSize;
        recreateModel();
        return "index";
    }

    public int getPageSize() {
        return pageSize;
    }

    public String prepareView() {
        current = (GruposAmigos) getGruposNombres().getRowData();
        return "browse";
    }

    public String prepareList() {
        recreateModel();
        return "index";
    }
}
